home *** CD-ROM | disk | FTP | other *** search
/ Revista do CD-ROM 94 / CD-ROM 94.iso / util / weban / setup.msi / Cabs.w19.cab / copyreport.xsl < prev    next >
Encoding:
Extensible Markup Language  |  2002-03-04  |  13.3 KB  |  383 lines

  1. <?xml version="1.0"?> 
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3.  
  4.     <xsl:variable name="ScoreLookup">
  5.       <c score="0" url="Graphics/dash.gif" alttext="Check Not Performed"/>
  6.       <c score="1" url="Graphics/excl_red.gif" alttext="Unable to scan"/>
  7.       <c score="2" url="Graphics/x_red.gif" alttext="Check failed (critical)"/>
  8.       <c score="3" url="Graphics/x_gold.gif" alttext="Check failed (non-critical)"/>
  9.       <c score="4" url="Graphics/astrx.gif" alttext="Best practice"/>
  10.       <c score="5" url="Graphics/chek_grn.gif" alttext="Check passed"/>
  11.       <c score="6" url="Graphics/dash.gif" alttext="Check not performed"/>
  12.       <c score="7" url="Graphics/info.gif" alttext="Additional information"/>
  13.     </xsl:variable>
  14.     
  15.     <xsl:variable name="Assessment">
  16.       <c score="1" text="Unable to Scan" longtext="Could not complete one or more requested checks."/>
  17.       <c score="2" text="Severe Risk" longtext="One or more critical checks failed."/>
  18.       <c score="3" text="Potential Risk" longtext="One or more non-critical checks failed."/>
  19.       <c score="4" text="Security FYIs" longtext=""/>
  20.       <c score="5" text="Strong Security" longtext="All checks were passed."/>
  21.     </xsl:variable>
  22.  
  23.     <xsl:variable name="FileName" select="'file name here'"></xsl:variable>
  24.     
  25.         <xsl:template match="SecScan">
  26.             <xsl:param name="assess" select="@Grade"/>
  27.             <head>
  28.                 <link REL="stylesheet" type="text/css" href="css/scanner.css" />
  29.             </head>
  30.             <table>
  31.             <tr>
  32.                 <td class="reportsubheader" width="140"><b>Computer name:</b></td>
  33.                 <td><xsl:value-of select="@Domain"/>\<xsl:value-of select="@Machine"/></td>
  34.             </tr>
  35.             <tr>
  36.                 <td class="reportsubheader" width="140"><b>IP address:</b></td>
  37.                 <td><xsl:value-of select="@IP"/></td>
  38.             </tr>
  39.             <tr>
  40.                 <td class="reportsubheader" width="140"><b>Security report name:</b></td>
  41.                 <td><xsl:value-of select="$FileName" /></td>
  42.             </tr>
  43.             <tr>
  44.                 <td class="reportsubheader" width="140"><b>Scan date:</b></td>
  45.                  <xsl:choose>
  46.                   <xsl:when test="@LDate">
  47.                     <td><xsl:value-of select="@LDate"/></td>
  48.                   </xsl:when>
  49.                   <xsl:otherwise>
  50.                     <td><xsl:value-of select="@Date"/></td>
  51.                   </xsl:otherwise>
  52.                 </xsl:choose>        
  53.             </tr>
  54.             <xsl:choose>
  55.             <xsl:when test="@HotfixDataVersion">
  56.                   <tr>
  57.                     <td class="reportsubheader" width="140"><b>Hotfix database version:</b></td>
  58.                     <td><xsl:value-of select="@HotfixDataVersion"/></td>
  59.                 </tr>
  60.             </xsl:when>
  61.             </xsl:choose>    
  62.             <tr>
  63.                 <td class="reportsubheader" width="140"><b>Security assessment:</b></td>
  64.                 <td><xsl:value-of select="document('')/*/xsl:variable[@name='Assessment']/c[@score=$assess]/@text"/><xsl:text> </xsl:text>(<xsl:value-of select="document('')/*/xsl:variable[@name='Assessment']/c[@score=$assess]/@longtext"/>)</td>
  65.             </tr>
  66.             
  67.             <xsl:choose>
  68.             <xsl:when test="Check[@ID='125']">
  69.                 <tr>
  70.                     <td colspan="2" class="reportsubheader">
  71.                         <br />
  72.                         This computer is running Windows .NET Server. This version of Windows is not officially supported in this release.
  73.                         <br />
  74.                     </td>
  75.                 </tr>    
  76.             </xsl:when>
  77.             </xsl:choose>
  78.             
  79.             </table>
  80.             
  81.             <xsl:choose>
  82.             <xsl:when test="Check[@Type='1']">
  83.                 <br />
  84.                 <div class="reportheader"><b>Windows Scan Results</b></div>
  85.                 <xsl:choose>
  86.                 <xsl:when test="Check[@Type='1'][@Cat='1']">
  87.                     <br />
  88.                     <div class="reportsubheader" style="MARGIN-LEFT: 5px;"><b>Vulnerabilities</b></div>
  89.                     <br />
  90.                     <table width="100%" border="0" cellpadding="0" cellspacing="0">
  91.                         <tr class="ReportListHeader">
  92.                             <td style="WIDTH:40" align="center">Score</td>
  93.                             <td style="WIDTH:40" align="left">Issue</td>
  94.                             <td>Result</td>
  95.                         </tr>
  96.                         <xsl:for-each select=".">
  97.                             <xsl:apply-templates select="Check[@Type='1'][@Cat='1']">
  98.                                 <xsl:sort order="sortorder" select="sortfield"/>
  99.                                 <xsl:sort select="@Rank"/>
  100.                             </xsl:apply-templates>
  101.                         </xsl:for-each>
  102.                     </table>            
  103.                 </xsl:when>
  104.                 </xsl:choose>
  105.                 <xsl:choose>
  106.                 <xsl:when test="Check[@Type='1'][@Cat='2']">
  107.                     <br />
  108.                     <div class="reportsubheader" style="MARGIN-LEFT: 5px;"><b>Additional System Information</b></div>
  109.                     <br />
  110.                     <table width="100%" border="0" cellpadding="0" cellspacing="0">
  111.                         <tr class="ReportListHeader">
  112.                             <td style="WIDTH:40" align="center">Score</td>
  113.                             <td style="WIDTH:40" align="left">Issue</td>
  114.                             <td>Result</td>
  115.                         </tr>
  116.                         <xsl:for-each select=".">
  117.                             <xsl:apply-templates select="Check[@Type='1'][@Cat='2']">
  118.                                 <xsl:sort order="sortorder" select="sortfield"/>
  119.                                 <xsl:sort select="@Rank"/>
  120.                             </xsl:apply-templates>
  121.                         </xsl:for-each>
  122.                     </table>
  123.                 </xsl:when>
  124.                 </xsl:choose>
  125.             </xsl:when>
  126.             </xsl:choose>
  127.  
  128.             <xsl:choose>
  129.             <xsl:when test="Check[@Type='3']">    
  130.                 <br />
  131.                 <div class="reportheader"><b>Internet Information Services (IIS) Scan Results</b></div>
  132.                 <xsl:choose>
  133.                 <xsl:when test="Check[@Type='3'][@Cat='1']">
  134.                     <br />
  135.                     <div class="reportsubheader" style="MARGIN-LEFT: 5px;"><b>Vulnerabilities</b></div>
  136.                     <br />
  137.                     <table width="100%" border="0" cellpadding="0" cellspacing="0">
  138.                         <tr class="ReportListHeader">
  139.                             <td style="WIDTH:40" align="center">Score</td>
  140.                             <td style="WIDTH:40" align="left">Issue</td>
  141.                             <td>Result</td>
  142.                         </tr>
  143.                         <xsl:for-each select=".">
  144.                             <xsl:apply-templates select="Check[@Type='3'][@Cat='1']">
  145.                                 <xsl:sort order="sortorder" select="sortfield"/>
  146.                                 <xsl:sort select="@Rank"/>
  147.                             </xsl:apply-templates>
  148.                         </xsl:for-each>
  149.                     </table>            
  150.                 </xsl:when>
  151.                 </xsl:choose>
  152.                 <xsl:choose>
  153.                 <xsl:when test="Check[@Type='3'][@Cat='2']">
  154.                     <br />
  155.                     <div class="reportsubheader" style="MARGIN-LEFT: 5px;"><b>Additional System Information</b></div>
  156.                     <br />
  157.                     <table width="100%" border="0" cellpadding="0" cellspacing="0">
  158.                         <tr class="ReportListHeader">
  159.                             <td style="WIDTH:40" align="center">Score</td>
  160.                             <td style="WIDTH:40" align="left">Issue</td>
  161.                             <td>Result</td>
  162.                         </tr>
  163.                         <xsl:for-each select=".">
  164.                             <xsl:apply-templates select="Check[@Type='3'][@Cat='2']">
  165.                                 <xsl:sort order="sortorder" select="sortfield"/>
  166.                                 <xsl:sort select="@Rank"/>
  167.                             </xsl:apply-templates>
  168.                         </xsl:for-each>
  169.                     </table>
  170.                 </xsl:when>
  171.                 </xsl:choose>
  172.                 <xsl:choose>
  173.                 <xsl:when test="Check[@Type='3'][@Cat='4']">
  174.                     <table width="100%" border="0" cellpadding="0" cellspacing="0">
  175.                         <tr class="ReportListHeader">
  176.                             <td style="WIDTH:40" align="center">Score</td>
  177.                             <td style="WIDTH:40" align="left">Issue</td>
  178.                             <td>Result</td>
  179.                         </tr>
  180.                         <xsl:for-each select=".">
  181.                             <xsl:apply-templates select="Check[@Type='3'][@Cat='4']">
  182.                                 <xsl:sort order="sortorder" select="sortfield"/>
  183.                                 <xsl:sort select="@Rank"/>
  184.                             </xsl:apply-templates>
  185.                         </xsl:for-each>
  186.                     </table>
  187.                 </xsl:when>
  188.                 </xsl:choose>
  189.             </xsl:when>
  190.             </xsl:choose>
  191.             
  192.             <xsl:choose>
  193.             <xsl:when test="Check[@Type='2']">    
  194.                 <br />
  195.                 <div class="reportheader"><b>SQL Server Scan Results</b></div>
  196.                 <xsl:choose>
  197.                 <xsl:when test="Check[@Type='2'][@Cat='1']">
  198.                     <br />
  199.                     <div class="reportsubheader" style="MARGIN-LEFT: 5px;"><b>Vulnerabilities</b></div>
  200.                     <br />
  201.                     <table width="100%" border="0" cellpadding="0" cellspacing="0">
  202.                         <tr class="ReportListHeader">
  203.                             <td style="WIDTH:40" align="center">Score</td>
  204.                             <td style="WIDTH:40" align="left">Issue</td>
  205.                             <td>Result</td>
  206.                         </tr>
  207.                         <xsl:for-each select=".">
  208.                             <xsl:apply-templates select="Check[@Type='2'][@Cat='1']">
  209.                                 <xsl:sort order="sortorder" select="sortfield"/>
  210.                                 <xsl:sort select="@Rank"/>
  211.                             </xsl:apply-templates>
  212.                         </xsl:for-each>
  213.                     </table>            
  214.                 </xsl:when>
  215.                 </xsl:choose>
  216.                 <xsl:choose>
  217.                 <xsl:when test="Check[@Type='2'][@Cat='2']">
  218.                     <br />
  219.                     <div class="reportsubheader" style="MARGIN-LEFT: 5px;"><b>Additional System Information</b></div>
  220.                     <br />
  221.                     <table width="100%" border="0" cellpadding="0" cellspacing="0">
  222.                         <tr class="ReportListHeader">
  223.                             <td style="WIDTH:40" align="center">Score</td>
  224.                             <td style="WIDTH:40" align="left">Issue</td>
  225.                             <td>Result</td>
  226.                         </tr>
  227.                         <xsl:for-each select=".">
  228.                             <xsl:apply-templates select="Check[@Type='2'][@Cat='2']">
  229.                                 <xsl:sort order="sortorder" select="sortfield"/>
  230.                                 <xsl:sort select="@Rank"/>
  231.                             </xsl:apply-templates>
  232.                         </xsl:for-each>
  233.                     </table>
  234.                 </xsl:when>
  235.                 </xsl:choose>
  236.                 <xsl:choose>
  237.                 <xsl:when test="Check[@Type='2'][@Cat='4']">
  238.                     <table width="100%" border="0" cellpadding="0" cellspacing="0">
  239.                         <tr class="ReportListHeader">
  240.                             <td style="WIDTH:40" align="center">Score</td>
  241.                             <td style="WIDTH:40" align="left">Issue</td>
  242.                             <td>Result</td>
  243.                         </tr>
  244.                         <xsl:for-each select=".">
  245.                             <xsl:apply-templates select="Check[@Type='2'][@Cat='4']">
  246.                                 <xsl:sort order="sortorder" select="sortfield"/>
  247.                                 <xsl:sort select="@Rank"/>
  248.                             </xsl:apply-templates>
  249.                         </xsl:for-each>
  250.                     </table>
  251.                 </xsl:when>
  252.                 </xsl:choose>
  253.             </xsl:when>
  254.             </xsl:choose>
  255.             
  256.             <xsl:choose>
  257.             <xsl:when test="Check[@Type='4']">    
  258.                 <br />
  259.                 <div class="reportheader"><b>Desktop Application Scan Results</b></div>
  260.                 <xsl:choose>
  261.                 <xsl:when test="Check[@Type='4'][@Cat='1']">
  262.                     <br />
  263.                     <div class="reportsubheader" style="MARGIN-LEFT: 5px;"><b>Vulnerabilities</b></div>
  264.                     <br />
  265.                     <table width="100%" border="0" cellpadding="0" cellspacing="0">
  266.                         <tr class="ReportListHeader">
  267.                             <td style="WIDTH:40" align="center">Score</td>
  268.                             <td style="WIDTH:40" align="left">Issue</td>
  269.                             <td>Result</td>
  270.                         </tr>
  271.                         <xsl:for-each select=".">
  272.                             <xsl:apply-templates select="Check[@Type='4'][@Cat='1']">
  273.                                 <xsl:sort order="sortorder" select="sortfield"/>
  274.                                 <xsl:sort select="@Rank"/>
  275.                             </xsl:apply-templates>
  276.                         </xsl:for-each>
  277.                     </table>            
  278.                 </xsl:when>
  279.                 </xsl:choose>
  280.                 <xsl:choose>
  281.                 <xsl:when test="Check[@Type='4'][@Cat='2']">
  282.                     <br />
  283.                     <div class="reportsubheader" style="MARGIN-LEFT: 5px;"><b>Additional System Information</b></div>
  284.                     <br />
  285.                     <table width="100%" border="0" cellpadding="0" cellspacing="0">
  286.                         <tr class="ReportListHeader">
  287.                             <td style="WIDTH:40" align="center">Score</td>
  288.                             <td style="WIDTH:40" align="left">Issue</td>
  289.                             <td>Result</td>
  290.                         </tr>
  291.                         <xsl:for-each select=".">
  292.                             <xsl:apply-templates select="Check[@Type='4'][@Cat='2']">
  293.                                 <xsl:sort order="sortorder" select="sortfield"/>
  294.                                 <xsl:sort select="@Rank"/>
  295.                             </xsl:apply-templates>
  296.                         </xsl:for-each>
  297.                     </table>
  298.                 </xsl:when>
  299.                 </xsl:choose>
  300.             </xsl:when>
  301.             </xsl:choose>
  302.         <!--EndFragment -->
  303.         </xsl:template>
  304.     
  305.     <xsl:template match="Check">
  306.         <xsl:param name="score" select="@Grade"/>
  307.             <xsl:variable name="bgcolor">
  308.             <xsl:choose>
  309.                 <xsl:when test="(position() mod 2) = 1">#8caae6</xsl:when>
  310.                 <xsl:otherwise>#CECFF6</xsl:otherwise>
  311.             </xsl:choose>
  312.             </xsl:variable>
  313.             <tr bgcolor="{$bgcolor}">
  314.                 <td align="center" valign="top">
  315.                     <xsl:choose>
  316.                       <xsl:when test="@Cat='2'">
  317.                         <xsl:choose>
  318.                           <xsl:when test="@ID='121'">
  319.                             <xsl:value-of select="document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=7]/@alttext"/>
  320.                           </xsl:when>
  321.                           <xsl:when test="@ID='101'">
  322.                             <xsl:value-of select="document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=7]/@alttext"/>
  323.                            </xsl:when>
  324.                           <xsl:otherwise>
  325.                            <xsl:value-of select="document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=4]/@alttext"/>
  326.                           </xsl:otherwise>
  327.                         </xsl:choose>
  328.                       </xsl:when>
  329.                       <xsl:otherwise>
  330.                          <xsl:value-of select="document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=$score]/@alttext" />
  331.                       </xsl:otherwise>
  332.                     </xsl:choose>    
  333.                 </td>
  334.                 <td style="WIDTH:75" align="left" valign="top"><xsl:value-of select="@Name"/></td>
  335.                 <td> 
  336.                     <TABLE width="100%">  
  337.                       <TR>
  338.                         <TD align="left" colspan="3"><xsl:value-of select="Advice"/></TD>
  339.                       </TR>
  340.                         <xsl:choose>
  341.                           <xsl:when test="Detail">
  342.                             <TR>
  343.                             <TD>
  344.                             <table width="100%" border="0" cellpadding="0" cellspacing="0" style="padding-left: 10px; padding-right: 10px;">
  345.                                 <tr class="ReportListHeader">
  346.                                     <xsl:for-each select="Detail/Head/Col">
  347.                                         <td Nowrap="true">
  348.                                         <B><xsl:value-of select="."/></B>
  349.                                         </td>
  350.                                     </xsl:for-each>
  351.                                 </tr>
  352.                                 <xsl:for-each select="Detail">
  353.                                     <xsl:apply-templates select="Row">
  354.                                     </xsl:apply-templates>
  355.                                 </xsl:for-each>
  356.                             </table>
  357.                             </TD>
  358.                             </TR>
  359.                           </xsl:when>
  360.                         </xsl:choose>    
  361.                     </TABLE>
  362.                 </td>
  363.             </tr>
  364.     </xsl:template>
  365.     
  366.     <xsl:template match="Row">
  367.         <xsl:param name="score" select="@Grade"/>
  368.             <tr>
  369.                 <xsl:for-each select="Col">
  370.                 <td valign="top">
  371.                  <xsl:choose>
  372.                   <xsl:when test="@URL">
  373.                     <A href="{@URL}"><xsl:value-of select="."/></A>
  374.                   </xsl:when>
  375.                   <xsl:otherwise>
  376.                     <xsl:value-of select="."/>
  377.                   </xsl:otherwise>
  378.                 </xsl:choose>    
  379.                 </td>
  380.                 </xsl:for-each>
  381.             </tr>
  382.     </xsl:template>
  383. </xsl:stylesheet>